package com.xfcy.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xfcy.blog.common.R;
import com.xfcy.blog.dto.SystemUserDTO;
import com.xfcy.blog.entity.User;

import java.util.List;

/**
 * 系统管理-用户基础信息表(User)表服务接口
 *
 * @author 晓风残月Lx
 * @since 2023-04-09 11:03:06
 */
public interface UserService extends IService<User> {


    /**
     * 获取当前登录用户信息
     * @return
     */
    R getCurrentUserInfo();

    /**
     * 获取用户菜单
     * @return
     */
    R getCurrentUserMenu();

    /**
     * 获取用户
     *
     * @param pageNo
     * @param pageSize
     * @param username
     * @param loginType
     * @return
     */
    R listUser(Integer pageNo, Integer pageSize, String username, Integer loginType);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    R selectById(Integer id);

    /**
     * 更新用户
     * @param systemUserDTO
     * @return
     */
    R updateUser(SystemUserDTO systemUserDTO);

    /**
     * 新增用户
     * @param systemUserDTO
     * @return
     */
    R createUser(SystemUserDTO systemUserDTO);

    /**
     * 批量删除用户
     * @param ids
     * @return
     */
    R removeUser(List<Integer> ids);

    /**
     * 查看在线用户列表
     *
     * @param pageNo
     * @param pageSize
     * @param keywords
     * @return
     */
    R listOnlineUsers(Integer pageNo, Integer pageSize, String keywords);

    /**
     * 踢人下线
     * @param token
     * @return
     */
    R kick(String token);
}


